package spring.ioc.xml.dao.impl;

import spring.ioc.xml.dao.StudentDao;
import spring.ioc.xml.pojo.Student;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import java.util.List;

/**
 * description: 数据层接口的实现
 * 定义JdbcTemplate进行CRUD
 */
public class StudentDaoImpl implements StudentDao {

    private JdbcTemplate jdbcTemplate;

    //TODO：通过xml注入IOC容器，需要Setter方法
    //TODO：使用的时候只要调用对象即可，由IOC容器完成对象创建和管理
    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    /**
     * 数据库查询全部学生数据
     */
    @Override
    public List<Student> queryAll() {

        //jdbcTemplate进行数据库的查询  ioc容器进行装配 不要自己去实例化
        String sql = "select id , name, gender ,age , class as classes from students ";

        List<Student> students = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Student.class));

        System.out.println("studentDao:"+students);

        return students;
    }
}
